import 'package:EZ_Batter/src/tool/assets.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_kit_plus/flutter_kit.dart';

import 'src/routes/routes.dart';

Future<void> main() async {
  /// 捕获所有未捕获的 Dart 异常
  LogManager.initFireBase(
      crashTest: false,
      runMain: () async {
        requestPermission();
        initRealm();
        runApp(const MyApp());
      });
}

void initRealm() {
  // // 创建不同模型的 RealmManager 实例
  // peripheralManager = RealmManager<DSPeripheral>(realm);
}

Future<void> requestPermission() async {
  BluetoothManager.instance.requestPermissions();
  await Permission.microphone.request();
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    // 隐藏状态栏
    /// SystemUiMode.immersiveSticky：隐藏状态栏和导航栏，用户可以从屏幕边缘滑动重新显示。
    /// SystemUiMode.immersive：隐藏状态栏和导航栏，但不会自动重新显示。
    /// SystemUiMode.leanBack：隐藏状态栏和导航栏，但更容易重新显示。
    SystemChrome.setEnabledSystemUIMode(SystemUiMode.immersiveSticky);
    SystemChrome.setSystemUIOverlayStyle(const SystemUiOverlayStyle(
      statusBarColor: Colors.transparent, // 状态栏背景色
      statusBarIconBrightness: Brightness.light, // 状态栏图标颜色 (白色图标)
    ));
    return MaterialApp(
      title: 'EZ BATTER',
      debugShowCheckedModeBanner: false,
      initialRoute: '/',
      routes: appRoutes,
      theme: ThemeData(
        // 设置全局 AppBar 主题
        appBarTheme: const AppBarTheme(
          centerTitle: true,
          backgroundColor: Colors.transparent, // AppBar 背景颜色
          elevation: 0,
          titleTextStyle: TextStyle(color: Colors.white, fontSize: 20, fontWeight: FontWeight.bold), // AppBar 标题文本颜色
        ),

        // 设置全局文本颜色
        textTheme: const TextTheme(
          bodySmall: TextStyle(color: Colors.white), // 小号文本颜色
          bodyMedium: TextStyle(color: Colors.white), // 中号文本颜色
          bodyLarge: TextStyle(color: Colors.white), // 大号文本颜色
        ),

        ///全局slider设置
        sliderTheme: SliderThemeData(
          trackHeight: 24,
          activeTrackColor: Colors.black, // 滑动过的颜色
          inactiveTrackColor: Colors.black, // 未滑动部分的颜色
          // activeTrackColor: Colors.transparent, // 滑动过的颜色
          // inactiveTrackColor: Colors.transparent, // 未滑动部分的颜色
          thumbColor: Colors.green, // 滑块的颜色
          overlayColor: Colors.red.withOpacity(0.2), // 滑块按下时的颜色
          activeTickMarkColor: Colors.transparent, // 隐藏刻度线
          inactiveTickMarkColor: Colors.transparent, // 隐藏刻度线
          thumbShape: const RoundSliderThumbShape(enabledThumbRadius: 12.0), // 自定义滑块的形状和大小
          overlayShape: const RoundSliderOverlayShape(overlayRadius: 0.0), // 设置圆点到两端的间距为 0 以减小间距
          trackShape: null,

          // thumbIcon: Image.asset('assets/slider_thumb.png'), // 自定义滑点图片
        ),

        switchTheme: const SwitchThemeData(
            trackColor: WidgetStatePropertyAll(Color_theme),
            trackOutlineColor: WidgetStatePropertyAll(Color_theme),
            overlayColor: WidgetStatePropertyAll(Colors.black),
            thumbColor: WidgetStatePropertyAll(Colors.white)),

        highlightColor: Colors.red, // 按钮等组件点击时的高亮颜色
        splashColor: Colors.blue, // 点击时的水波纹颜色
        colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),

        useMaterial3: true,
      ),
      builder: EasyLoading.init(),
    );
  }
}
